1. Field of the Invention
The invention relates generally to fuses in integrated circuits (IC's) and more particularly to systems and methods for detecting the state of a fuse or set of fuses that are used to persistently store data in an IC.
2. Related Art
It is sometimes necessary to maintain some device specific information for a device such as integrated circuit (IC). It is convenient if not necessary to store this information in the IC itself. In order to do this, some part of the circuitry must act as a persistent storage. One solution is to incorporate into the circuitry a set of fuses and encode the desired information by programming it into the fuses. There are various trade-offs in the choice of components for this task, such as size, ease of programming, persistence etc.
One conventional method is to incorporate laser fuses into a device. These fuses are programmed by evaporating the fuses' metal links (in other words, the fuses are “cut”). The programmed information is then read by determining which of the fuses have been cut and which have not. Cut fuses may, for example, be interpreted as 0's, while uncut fuses may be interpreted as 1's. The programming is permanent.
The opportunities to program laser fuses are limited to a small window of time in the manufacturing process when the fuses are exposed. An additional limitation on the use of this type of fuse is the minimum size of such fuses. This is a limitation because of the wavelength of the laser. The wavelength of the laser is typically large relative to the feature size of contemporary IC's, so the laser may not be able to accurately cut the fuses. The use of a laser to cut the fuses may also cause unintended collateral damage.
An alternative to laser fuses is electrically programmable fuses such as Ti-Silicide or other metal-silicide fuses. These (and fuses of similar construction) may also be referred to as poly fuses or eFuses. An eFuse is programmed by passing a large current through the fuse to “cut” it. The mechanism underlying the programming of an (metal-silicide) eFuse is based on the agglomeration of the material of a silicide layer in the fuse. The agglomeration occurs when the current density (and temperature) are sufficient to bring about an appropriate degree of electromigration. These fuses are smaller and more readily programmed than laser fuses. An eFuse can be programmed at a more convenient stage in the manufacturing process, or at some time well after manufacturing. Also, the potential for collateral damage is decreased (with proper programming).
Electromigration is the mass transport caused by the (gradual) migration of the ions in a conductor due to the momentum exchange between moving (conducting) electrons and nearby diffusing metal atoms (ions). Over a period of time a sufficient number of atoms are forced far from their original positions, and gaps (voids) are created, restricting or preventing conduction. Agglomeration refers to the piling up of the migrating atoms.
Normally, electromigration does not occur in semiconductors, but instead occurs in an IC's metal interconnects. Designers have taken advantage of this effect by constructing fuse components out of appropriately affected materials such as Ti-Silicide, which can then be subjected to high currents/voltages to program the fuses. However, when the current is too large or applied for too long, the fuse can be damaged or even destroyed. Other problems may arise. For example, in some cases, a short circuit can occur in nearby components.
An eFuse, both in its unprogrammed, unaltered (a.k.a. uncut) state and properly programmed (a.k.a., cut) state, carries a current and has an impedance in a specified range. If the fuse is programmed with current that is too high, the fuse can be damaged or even destroyed, leaving it with an impedance well outside the desired range(s). There is also the potential for collateral damage to other components in the device.
A conventional read circuit can distinguish between an unprogrammed (uncut) and programmed (cut) fuse, but cannot identify an improperly programmed (destroyed) fuse. It is, however, important to be able not only to read the fuse, but also to determine whether the fuse has been destroyed. It would therefore be desirable to provide systems and methods to distinguish between the three fuse states: uncut; cut; and destroyed.